package StudyCode.summary.myfile;

import java.util.Arrays;

/**
 * 版权所有 科技与人文(www.tah1986.com)
 */
public class CompareByteArray {
	public static void main(String[] argv) {
		byte[] bytes1 = new byte[]{1, 2, 3, 4, 5};
		byte[] bytes2 = new byte[]{1, 2, 3, 4, 5};
		System.out.println("bytes1:" + Arrays.toString(bytes1));
		System.out.println("bytes2:" + Arrays.toString(bytes2));
		System.out.println("bytes1 是否等于 bytes2");
		System.out.println(compareByteArrays(bytes1, bytes2) == 0);
	}

	private static int compareByteArrays(byte[] bytes1, byte[] bytes2) {
		if (null == bytes1) {
			if (null == bytes2) {
				return 0;
			} else {
				return -1;
			}
		}
		if (null == bytes2) {
			return 1;
		}

		for (int i = 0; i < bytes1.length && i < bytes2.length; i++) {
			int cmp = compareBytes(bytes1[i], bytes2[i]);
			if (0 != cmp) {
				return cmp;
			}
		}
		if (bytes1.length == bytes2.length) {
			return 0;
		} else {
			return (bytes1.length < bytes2.length) ? -1 : 1;
		}
	}

	private static int compareBytes(byte b1, byte b2) {
		return compareBytes((int) b1, (int) b2);
	}

	private static int compareBytes(int b1, int b2) {
		int i1 = b1 & 0xFF;
		int i2 = b2 & 0xFF;
		return Integer.compare(i1, i2);
	}
}
